package com.taobao.api.request;

import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.TaobaoObject;
import java.util.Date;
import java.util.Map;

import com.taobao.api.ApiRuleException;
import com.taobao.api.BaseTaobaoRequest;
import com.taobao.api.internal.util.TaobaoHashMap;
import com.taobao.api.internal.util.json.JSONWriter;
import com.taobao.api.response.TmallNrFulfillLogisticsSyncResponse;

/**
 * TOP API: tmall.nr.fulfill.logistics.sync request
 * 
 * @author top auto create
 * @since 1.0, 2018.07.25
 */
public class TmallNrFulfillLogisticsSyncRequest extends BaseTaobaoRequest<TmallNrFulfillLogisticsSyncResponse> {
	
	

	/** 
	* 物流回传参数
	 */
	private String param0;

	public void setParam0(String param0) {
		this.param0 = param0;
	}

	public void setParam0(NrLogisticsInfoSynReqDto param0) {
		this.param0 = new JSONWriter(false,true).write(param0);
	}

	public String getParam0() {
		return this.param0;
	}

	public String getApiMethodName() {
		return "tmall.nr.fulfill.logistics.sync";
	}

	public Map<String, String> getTextParams() {		
		TaobaoHashMap txtParams = new TaobaoHashMap();
		txtParams.put("param0", this.param0);
		if(this.udfParams != null) {
			txtParams.putAll(this.udfParams);
		}
		return txtParams;
	}

	public Class<TmallNrFulfillLogisticsSyncResponse> getResponseClass() {
		return TmallNrFulfillLogisticsSyncResponse.class;
	}

	public void check() throws ApiRuleException {
	}
	
	/**
 * 物流回传参数
 *
 * @author top auto create
 * @since 1.0, null
 */
public static class NrLogisticsInfoSynReqDto extends TaobaoObject {

	private static final long serialVersionUID = 3632962546654859549L;

	/**
		 * 业务类型（oneHour:一小时达,zqs:周期送,dss:定时送，周期送业务:zqs）如果自配送传入：other
		 */
		@ApiField("biz_identity")
		private String bizIdentity;
		/**
		 * 取消配送原因
		 */
		@ApiField("cancel_reason")
		private String cancelReason;
		/**
		 * 取消配送编号
		 */
		@ApiField("cancel_reason_code")
		private String cancelReasonCode;
		/**
		 * 流转节点的当前城市
		 */
		@ApiField("city")
		private String city;
		/**
		 * 快递业务员联系方式，手机号码或电话。
		 */
		@ApiField("delivery_phone")
		private String deliveryPhone;
		/**
		 * 快递员id
		 */
		@ApiField("delivery_user_id")
		private Long deliveryUserId;
		/**
		 * 快递员的姓名
		 */
		@ApiField("delivery_user_name")
		private String deliveryUserName;
		/**
		 * 运力类型，0: 第三方快递员,  1:商家自动
		 */
		@ApiField("delivery_user_type")
		private Long deliveryUserType;
		/**
		 * 流转节点的详细地址及操作描述
		 */
		@ApiField("desc")
		private String desc;
		/**
		 * 事件编码,10:已下发等待接单,20:骑手已接单，待提货,40:揽收,999:妥投,50:拒收,-999:取消
		 */
		@ApiField("event")
		private Long event;
		/**
		 * 流转节点发生时间
		 */
		@ApiField("event_create_time")
		private Date eventCreateTime;
		/**
		 * 操作人类型:1寄件人,3客服小二,4快递员,5CP,6收件人,100系统
		 */
		@ApiField("event_oper_type")
		private Long eventOperType;
		/**
		 * 站点名称
		 */
		@ApiField("facility_name")
		private String facilityName;
		/**
		 * 运单所属CP，自配送传入：OTHER
		 */
		@ApiField("mail_cp")
		private String mailCp;
		/**
		 * 快递公司名称，自配送传入：其他
		 */
		@ApiField("mail_cp_name")
		private String mailCpName;
		/**
		 * 快递单号。各个快递公司的运单号格式不同。
		 */
		@ApiField("mail_no")
		private String mailNo;
		/**
		 * 淘系交易主订单号
		 */
		@ApiField("main_biz_order_id")
		private Long mainBizOrderId;
		/**
		 * 配送日期，周期送业务必传
		 */
		@ApiField("plan_date")
		private String planDate;
		/**
		 * 配送序号
		 */
		@ApiField("sequence_no")
		private Long sequenceNo;
		/**
		 * 淘宝交易子订单号，周期送业务必传
		 */
		@ApiField("sub_biz_order_id")
		private Long subBizOrderId;
		/**
		 * 请求编号
		 */
		@ApiField("trace_id")
		private String traceId;
	

	public String getBizIdentity() {
			return this.bizIdentity;
		}
		public void setBizIdentity(String bizIdentity) {
			this.bizIdentity = bizIdentity;
		}
		public String getCancelReason() {
			return this.cancelReason;
		}
		public void setCancelReason(String cancelReason) {
			this.cancelReason = cancelReason;
		}
		public String getCancelReasonCode() {
			return this.cancelReasonCode;
		}
		public void setCancelReasonCode(String cancelReasonCode) {
			this.cancelReasonCode = cancelReasonCode;
		}
		public String getCity() {
			return this.city;
		}
		public void setCity(String city) {
			this.city = city;
		}
		public String getDeliveryPhone() {
			return this.deliveryPhone;
		}
		public void setDeliveryPhone(String deliveryPhone) {
			this.deliveryPhone = deliveryPhone;
		}
		public Long getDeliveryUserId() {
			return this.deliveryUserId;
		}
		public void setDeliveryUserId(Long deliveryUserId) {
			this.deliveryUserId = deliveryUserId;
		}
		public String getDeliveryUserName() {
			return this.deliveryUserName;
		}
		public void setDeliveryUserName(String deliveryUserName) {
			this.deliveryUserName = deliveryUserName;
		}
		public Long getDeliveryUserType() {
			return this.deliveryUserType;
		}
		public void setDeliveryUserType(Long deliveryUserType) {
			this.deliveryUserType = deliveryUserType;
		}
		public String getDesc() {
			return this.desc;
		}
		public void setDesc(String desc) {
			this.desc = desc;
		}
		public Long getEvent() {
			return this.event;
		}
		public void setEvent(Long event) {
			this.event = event;
		}
		public Date getEventCreateTime() {
			return this.eventCreateTime;
		}
		public void setEventCreateTime(Date eventCreateTime) {
			this.eventCreateTime = eventCreateTime;
		}
		public Long getEventOperType() {
			return this.eventOperType;
		}
		public void setEventOperType(Long eventOperType) {
			this.eventOperType = eventOperType;
		}
		public String getFacilityName() {
			return this.facilityName;
		}
		public void setFacilityName(String facilityName) {
			this.facilityName = facilityName;
		}
		public String getMailCp() {
			return this.mailCp;
		}
		public void setMailCp(String mailCp) {
			this.mailCp = mailCp;
		}
		public String getMailCpName() {
			return this.mailCpName;
		}
		public void setMailCpName(String mailCpName) {
			this.mailCpName = mailCpName;
		}
		public String getMailNo() {
			return this.mailNo;
		}
		public void setMailNo(String mailNo) {
			this.mailNo = mailNo;
		}
		public Long getMainBizOrderId() {
			return this.mainBizOrderId;
		}
		public void setMainBizOrderId(Long mainBizOrderId) {
			this.mainBizOrderId = mainBizOrderId;
		}
		public String getPlanDate() {
			return this.planDate;
		}
		public void setPlanDate(String planDate) {
			this.planDate = planDate;
		}
		public Long getSequenceNo() {
			return this.sequenceNo;
		}
		public void setSequenceNo(Long sequenceNo) {
			this.sequenceNo = sequenceNo;
		}
		public Long getSubBizOrderId() {
			return this.subBizOrderId;
		}
		public void setSubBizOrderId(Long subBizOrderId) {
			this.subBizOrderId = subBizOrderId;
		}
		public String getTraceId() {
			return this.traceId;
		}
		public void setTraceId(String traceId) {
			this.traceId = traceId;
		}

}


}